#include <bits/stdc++.h>
// 2024/08/07
// tag: 斐波那契
using namespace std;

int dp[100001];

signed main()
{
    int n, k;
    cin >> n >> k;
    dp[0] = dp[1] = 1;
    // 从2开始循环，计算dp[i]的值
    for (int i = 2; i <= n; i++){
        // 如果i小于等于k，则dp[i] = dp[i - 1] * 2
        if (i <= k)
            dp[i] = dp[i - 1] * 2;
        // 否则dp[i] = dp[i - 1] * 2 - dp[i - 1 - k]
        else
            dp[i] = dp[i - 1] * 2 - dp[i - 1 - k];
        // 对dp[i]取模100003
        dp[i] %= 100003;
    }
    // 输出dp[n]的值，注意要加上100003再取模100003，防止结果为负数
    cout << (dp[n] + 100003) % 100003 << endl;
    return 0;
}